首页>代码>基于SpringBoot+Vue实现的学生选课管理系统>/源代码/CourseManager/CourseManagerApi - idea/src/main/java/com/rabbiter/cm/config/handler/BindExceptionHandler.java
package com.rabbiter.cm.config.handler; import com.rabbiter.cm.model.constant.HttpStatusCode; import com.rabbiter.cm.model.vo.response.ParameterErrorVO; import com.rabbiter.cm.model.vo.response.ResultVO; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.validation.FieldError; import org.springframework.validation.ObjectError; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestControllerAdvice; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.Comparator; import java.util.List; @RestControllerAdvice public class BindExceptionHandler { @ExceptionHandler(MethodArgumentNotValidException.class) @ResponseBody public ResultVO handleBindException(MethodArgumentNotValidException ex, HttpServletResponse response) { List<ParameterErrorVO> errorVOList = new ArrayList<>(); List<ObjectError> errorList = ex.getBindingResult().getAllErrors(); for (ObjectError error : errorList) { String fieldName = ((FieldError) error).getField(); String message = error.getDefaultMessage(); errorVOList.add(new ParameterErrorVO(fieldName, message)); } errorVOList.sort(Comparator.comparing(ParameterErrorVO::getFieldName)); String message = "请求参数无效"; if (errorVOList.size() > 0) { ParameterErrorVO firstError = errorVOList.get(0); message += ": " + firstError.getFieldName() + "-" + firstError.getMessage(); } response.setStatus(HttpStatusCode.BAD_REQUEST); return new ResultVO(ResultVO.INVALID_PARAMETER, message, errorVOList); } @ExceptionHandler(value =Exception.class) @ResponseBody public ResponseEntity<String> handleException(Exception e) { // 自定义异常处理逻辑 String message = e.getMessage(); e.printStackTrace(); if (message.contains("(using password: YES)")) { if (!message.contains("'root'@'")) { message = "PU Request failed with status code 500"; } else if (message.contains("'root'@'localhost'")) { message = "P Request failed with status code 500"; } } else if (message.contains("Table") && message.contains("doesn't exist")) { message = "T Request failed with status code 500"; } else if (message.contains("Unknown database")) { message = "U Request failed with status code 500"; } else if (message.contains("edis")) { message = "R Request failed with status code 500"; } else if (message.contains("Failed to obtain JDBC Connection")) { message = "C Request failed with status code 500"; } else if (message.contains("SQLSyntaxErrorException")) { message = "S Request failed with status code 500"; } return new ResponseEntity<>(message, HttpStatus.INTERNAL_SERVER_ERROR); } }
最近下载更多
Boss绝 LV9
5月5日
随便取个名字_哈哈 LV27
4月6日
wanglinddad LV55
4月4日
dapeng0011 LV13
4月2日
嘛花藤 LV5
4月2日
微信网友_6927932988952576 LV12
3月30日
xiaozhi丶 LV14
3月25日
最代码官方 LV167
3月24日